Persistent এবং Non-persistent Cookies

Java Technologies - অ্যাপাচি এইচটিটিপি ক্লায়েন্ট (Apache HTTP Client) Cookies Management এবং Session Handling |
166
166

Persistent এবং Non-persistent Cookies: ধারণা এবং ব্যবহার

Cookies হল ছোট তথ্যের টুকরা যা সার্ভার থেকে ক্লায়েন্টে পাঠানো হয় এবং ক্লায়েন্ট (ব্রাউজার) বা সার্ভারে সংরক্ষণ করা হয়। HTTP প্রোটোকলের মধ্যে, Cookies প্রায়ই ব্যবহৃত হয় সেশন ডেটা ট্র্যাক করার জন্য, ইউজারের পার্সোনালাইজড অভিজ্ঞতা প্রদান করার জন্য, এবং সার্ভারের মধ্যে যোগাযোগের স্থিতি বজায় রাখার জন্য।

Persistent এবং Non-persistent Cookies দুটি প্রধান ধরনের কুকি রয়েছে:

  • Persistent Cookies: এই ধরনের কুকি একটি নির্দিষ্ট সময়সীমা (একটি ভবিষ্যত তারিখ) পর্যন্ত ব্রাউজারে সংরক্ষণ করা হয়। সময়সীমা শেষে, কুকিটি স্বয়ংক্রিয়ভাবে মুছে যায়।
  • Non-persistent Cookies: এই ধরনের কুকি শুধুমাত্র সেশন (যতক্ষণ না ব্রাউজার বন্ধ করা হয়) চলাকালীন থাকে। ব্রাউজার বন্ধ করার সাথে সাথে কুকি মুছে যায়।

Persistent এবং Non-persistent Cookies এর মধ্যে পার্থক্য

বৈশিষ্ট্যPersistent CookiesNon-persistent Cookies
সংরক্ষণের সময়কালনির্দিষ্ট সময়সীমা থাকে, যেমন এক সপ্তাহ, এক মাস, ইত্যাদিশুধুমাত্র সেশনের জন্য, ব্রাউজার বন্ধ হলে মুছে যায়
জীবনকালদীর্ঘ (সময় নির্ধারণ করা থাকে)স্বল্প (ব্রাউজার বন্ধ হলে মুছে যায়)
ব্যবহারইউজারের পরিচিতি এবং প্রেফারেন্স ট্র্যাক করাসেশনের তথ্য যেমন লগইন স্টেটাস ট্র্যাক করা
উদাহরণলগইন তথ্য সংরক্ষণ, ব্যবহারের জন্য পছন্দগুলিসেশনের মধ্যে চলমান তথ্য (যেমন, কার্টে আইটেম রাখার জন্য)

Apache HTTP Client এ Persistent এবং Non-persistent Cookies ব্যবহার

Apache HTTP Client-এ কুকি ব্যবস্থাপনা করতে CookieStore এবং HttpClientContext ব্যবহার করা হয়। এখানে, আমরা Persistent এবং Non-persistent কুকি ব্যবস্থাপনার জন্য কোড উদাহরণ দেখব।

1. Non-persistent Cookies ব্যবহারের উদাহরণ

Non-persistent Cookies সেশনের মধ্যে সংরক্ষণ করা হয়, এবং ব্রাউজার বন্ধ করার পর মুছে যায়।

import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.impl.client.BasicCookieStore;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.cookie.BasicClientCookie;
import org.apache.http.impl.cookie.CookieSpecBase;
import org.apache.http.impl.client.HttpClientContext;
import org.apache.http.cookie.Cookie;
import org.apache.http.impl.cookie.CookieSpec;

import java.util.List;

public class NonPersistentCookiesExample {
    public static void main(String[] args) {
        try {
            // CookieStore তৈরি করা
            BasicCookieStore cookieStore = new BasicCookieStore();

            // Non-persistent Cookie তৈরি করা (ব্রাউজার বন্ধ হলে মুছে যাবে)
            BasicClientCookie cookie = new BasicClientCookie("session_id", "123456");
            cookie.setDomain("example.com");
            cookie.setPath("/");
            cookie.setExpiryDate(null); // কোন Expiry Date সেট করা হবে না, সেজন্য এটি Non-persistent
            cookieStore.addCookie(cookie);

            // HttpClient তৈরি করা
            CloseableHttpClient httpClient = HttpClients.custom()
                    .setDefaultCookieStore(cookieStore)
                    .build();

            // GET অনুরোধ তৈরি করা
            HttpGet httpGet = new HttpGet("https://example.com");

            // HTTP অনুরোধ পাঠানো
            HttpClientContext context = HttpClientContext.create();
            context.setCookieStore(cookieStore);
            httpClient.execute(httpGet, context);

            // কুকি দেখানো
            List<Cookie> cookies = cookieStore.getCookies();
            for (Cookie c : cookies) {
                System.out.println("Cookie: " + c.getName() + " = " + c.getValue());
            }

            // ক্লোজ করা
            httpClient.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

2. Persistent Cookies ব্যবহারের উদাহরণ

Persistent Cookies-এর ক্ষেত্রে একটি নির্দিষ্ট expiry date সেট করা হয়, যার পর এটি মুছে যায় না।

import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.impl.client.BasicCookieStore;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.cookie.BasicClientCookie;
import org.apache.http.impl.client.HttpClientContext;
import org.apache.http.cookie.Cookie;
import java.util.Date;
import java.util.List;

public class PersistentCookiesExample {
    public static void main(String[] args) {
        try {
            // CookieStore তৈরি করা
            BasicCookieStore cookieStore = new BasicCookieStore();

            // Persistent Cookie তৈরি করা (একটি expiry date সহ)
            BasicClientCookie cookie = new BasicClientCookie("user_token", "abcdef123456");
            cookie.setDomain("example.com");
            cookie.setPath("/");
            // Expiry Date সেট করা
            Date expiryDate = new Date(System.currentTimeMillis() + 24 * 60 * 60 * 1000); // 1 দিন পর
            cookie.setExpiryDate(expiryDate);
            cookieStore.addCookie(cookie);

            // HttpClient তৈরি করা
            CloseableHttpClient httpClient = HttpClients.custom()
                    .setDefaultCookieStore(cookieStore)
                    .build();

            // GET অনুরোধ তৈরি করা
            HttpGet httpGet = new HttpGet("https://example.com");

            // HTTP অনুরোধ পাঠানো
            HttpClientContext context = HttpClientContext.create();
            context.setCookieStore(cookieStore);
            httpClient.execute(httpGet, context);

            // কুকি দেখানো
            List<Cookie> cookies = cookieStore.getCookies();
            for (Cookie c : cookies) {
                System.out.println("Cookie: " + c.getName() + " = " + c.getValue() + " Expiry Date: " + c.getExpiryDate());
            }

            // ক্লোজ করা
            httpClient.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

কোড ব্যাখ্যা

  1. Non-persistent Cookie
    • cookie.setExpiryDate(null) ব্যবহার করে non-persistent কুকি তৈরি করা হয়, যার ফলে এটি শুধুমাত্র সেশন চলাকালীন থাকে।
  2. Persistent Cookie
    • cookie.setExpiryDate(expiryDate) ব্যবহার করে persistent কুকি তৈরি করা হয়, যা একটি নির্দিষ্ট সময় পরে (যেমন 1 দিন পরে) মুছে যাবে।
  3. CookieStore
    • BasicCookieStore ব্যবহার করে কুকি সংরক্ষণ করা হয়, এবং সেটি HttpClient-এ সেট করা হয় যাতে কুকি পাঠানো যায় এবং সেগুলি ট্র্যাক করা যায়।
  4. HttpClientContext
    • HttpClientContext-এ CookieStore সংযুক্ত করা হয়, যাতে কুকি ব্যবস্থাপনা করা যায় এবং সার্ভারের কাছ থেকে রেসপন্সের কুকি সংগ্রহ করা যায়।

সারাংশ

Persistent এবং Non-persistent Cookies HTTP ক্লায়েন্টে ব্যবহারকারীর সেশন এবং প্রেফারেন্স ট্র্যাক করার জন্য ব্যবহৃত হয়। Non-persistent Cookies সেশনের জন্য সংরক্ষিত থাকে এবং ব্রাউজার বন্ধ হলে মুছে যায়, যখন Persistent Cookies একটি নির্দিষ্ট সময়ের জন্য ব্রাউজারে থাকে। Apache HTTP Client-এ কুকি ব্যবস্থাপনা সহজভাবে করা যায় এবং কাস্টম কুকি তৈরি, সেটিং, এবং সার্ভারের সাথে শেয়ার করা যায়।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion